#import <Cocoa/Cocoa.h>
#import "View.h"
#import "drawingListener.h"

/*********************************************
 LINE LISTENER
 ********************************************/
class LineListener : public DrawingListener {
private:
	View* vista;
	
public:
	LineListener(View* v);
	void action(void* receiver, Event* data);
};

/*********************************************
 CIRCLE LISTENER
 ********************************************/
class CircleListener : public DrawingListener {
private:
	View* vista;
	
public:
	CircleListener(View* v);
	void action(void* receiver, Event* data);
};

/*********************************************
 RECTANGLE LISTENER
 ********************************************/
class RectangleListener : public DrawingListener {
private:
	View* vista;
public:
	RectangleListener(View* v);
	void action(void* receiver, Event* data);
};

/*********************************************
 HAND_DRAW LISTENER
 ********************************************/
class HandDrawListener : public DrawingListener {
private:
	View* vista;
public:
	HandDrawListener(View* v);
	void action(void* receiver, Event* data);
};

/*********************************************
  LISTENER COMPLETO PARA METODOS DISTRIBUIDOS
  SOBRE LA VISTA O PARA OBTENER PAIREVENTS
 ********************************************/

#define METHOD_LISTENER_TYPE 10000

class MethodListener : public EventListener{
private:
	View* vista;
public:
	MethodListener(View* v);
	bool check_event(Event* evt);
	void action(void* receiver, Event* data);
	const char* name();
};

/*********************************************
 LISTENER PARA TEMPERATURA
 ********************************************/

class TempListener : public EventListener{
private:
	View* vista;
public:
	TempListener(View* v);
	bool check_event(Event* evt);
	void action(void* receiver, Event* data);
	const char* name();
};
